// 情绪指数模块
const QingxuModule = {
    // 情绪指数数据
    qingxuData: [],
    selectedDate: null,
    chartInstance: null,

    // 处理情绪指数数据
    processQingxuData(data) {
        console.log('开始处理情绪指数数据:', data);
        
        if (!Array.isArray(data)) {
            console.error('情绪指数数据格式错误: 不是数组格式');
            this.qingxuData = [];
            return;
        }

        // 按日期排序
        this.qingxuData = data.sort((a, b) => new Date(b.dateTime) - new Date(a.dateTime));
        console.log('处理后的情绪指数数据:', this.qingxuData);
    },

    // 从API加载情绪指数数据
    async loadQingxuData() {
        try {
            const url = `/api/qingxu/get`;
            console.log('正在请求情绪指数数据URL:', url);
            
            const response = await axios.get(url);
            console.log('情绪指数数据API响应:', response.data);
            
            if (response.data && response.data.code === 200) {
                const qingxuData = response.data.data || [];
                this.processQingxuData(qingxuData);
                this.showMessage('success', `成功加载情绪指数数据`);
            } else if (Array.isArray(response.data)) {
                // 直接返回数组的情况
                this.processQingxuData(response.data);
                this.showMessage('success', `成功加载情绪指数数据`);
            } else {
                console.error('情绪指数数据格式异常:', response.data);
                this.showMessage('error', '情绪指数数据格式异常: ' + JSON.stringify(response.data));
            }
        } catch (error) {
            console.error('加载情绪指数数据失败:', error);
            this.showMessage('error', '情绪指数数据加载失败: ' + (error.response?.data?.message || error.message || '网络错误'));
        }
    },

    // 显示消息的统一方法
    showMessage(type, message) {
        if (window.ElMessage) {
            window.ElMessage[type](message);
        } else {
            console.log(`[${type.toUpperCase()}] ${message}`);
        }
    },

    // 格式化日期显示
    formatDate(dateStr) {
        if (!dateStr) return '';
        if (dateStr.length === 8) {
            return `${dateStr.substring(0, 4)}-${dateStr.substring(4, 6)}-${dateStr.substring(6, 8)}`;
        }
        return dateStr;
    },

    // 格式化时间显示
    formatTime(dateStr) {
        if (!dateStr) return '';
        const date = new Date(this.formatDate(dateStr));
        return date.toLocaleString();
    },

    // 获取情绪等级
    getQingxuLevel(value) {
        if (value >= 80) return { text: '极度贪婪', color: '#f56c6c' };
        if (value >= 60) return { text: '贪婪', color: '#e6a23c' };
        if (value >= 40) return { text: '中性', color: '#909399' };
        if (value >= 20) return { text: '恐惧', color: '#409eff' };
        return { text: '极度恐惧', color: '#67c23a' };
    },

    // 选择日期
    selectDate(date) {
        this.selectedDate = date;
    },

    // 初始化图表
    initChart() {
        // 这里可以集成图表库如ECharts
        console.log('初始化情绪指数图表');
    },

    // 初始化方法
    init() {
        console.log('情绪指数模块初始化');
        this.loadQingxuData();
        this.initChart();
    }
};